//
//  FMDBTest.m
//  iOSDemo
//
//  Created by mokai on 14/10/27.
//  Copyright (c) 2014年 mokai. All rights reserved.
//

#import <UIKit/UIKit.h>
#import <XCTest/XCTest.h>
#import "DBManager.h"
@interface FMDBTest : XCTestCase

@end

@implementation FMDBTest

- (void)setUp {
    [super setUp];
    // Put setup code here. This method is called before the invocation of each test method in the class.
}

- (void)tearDown {
    // Put teardown code here. This method is called after the invocation of each test method in the class.
    [super tearDown];
}

- (void)testExample {
    //1、拿到数据库并打开，如果数据库不存在且创建
    DBManager *defDB = [DBManager managerWithDBName:@"test.db"];
    
    //2、创建表
    NSString *sql = @"create table bulktest2 (id integer primary key autoincrement, name text);";
    ;
    XCTAssert([defDB t:sql], @"create sucess");
    
    //3、操作数据库，操作请指定 表指针
    defDB.currentTableName = @"bulktest2";
    
    //插入
    sql  = @"insert into bulktest2 (name) values (:name);";
    XCTAssert([defDB e:sql params:@{@"name":@(13)}], @"insert sucess");
    XCTAssert([defDB i:@{@"name":@"mokai"}]);
    
    //更新
    //where中的Key不能与data中的key有冲突，否则请自己拼语句
    XCTAssert([defDB u:@{@"name":@"mokai1"} where:@{@"name":@"mokai"}]);
    
    //删除
    XCTAssert([defDB d:@{@"id":@(1)}]);
    
    //获取最近一次更新改变的行数
    NSLog(@"%d",defDB.changes);
    
    //事务处理快
    [defDB transaction:^(FMDatabase *fmdb) {
        //在这里可以调用FMDatabase，也可以调用Manager的其他方法
        //如
        [fmdb executeUpdate:@"insert into bulktest2 (name) values(\"mm\")"];
        
        [defDB i:@{@"name":@"12345"}];
        
        //这里也可以选择回滚
        [defDB rollback];
        
        //再insert一次
        [defDB i:@{@"name":@"12345"}];
    }];
    //那么当这个block执行完则只有一条数据插入
     NSLog(@"%d",defDB.changes);
    
    //表总行数
    NSLog(@"%d",defDB.count);
    
    //表所有数据
    NSLog(@"%@",defDB.queryAll);
    
    //表分页查询,当前查询第一页，页大小2
    NSLog(@"%@",[defDB queryPage:0 size:2]);
    
    //最后关闭数据库
    [defDB close];
}



@end
